var app = angular.module('app')
.config(['$controllerProvider', '$compileProvider', '$filterProvider', '$provide',
function($controllerProvider, $compileProvider, $filterProvider, $provide) {
    app.controller = $controllerProvider.register;
    app.directive = $compileProvider.directive;
    app.filter = $filterProvider.register;
    app.factory = $provide.factory;
    app.service = $provide.service;
    app.constant = $provide.constant;
    app.value = $provide.value;
}])

// 配置post时提交数据的格式
.config(['$httpProvider',function($httpProvider) {
    //解决angularjs-post提交为json时候，改为form data
    $httpProvider.defaults.transformRequest = function(obj) {
        var str = [];
        for (var p in obj) {
            str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
        }
        return str.join("&");

        var param = function(obj) {
            var query = '';
            var name, value, fullSubName, subName, subValue, innerObj, i;
            for (name in obj) {
                value = obj[name];
                if (value instanceof Array) {
                    for (i = 0; i < value.length; ++i) {
                        subValue = value[i];
                        fullSubName = name + '[]';
                        innerObj = {};
                        innerObj[fullSubName] = subValue;
                        query += param(innerObj) + '&';
                    }
                } else if (value instanceof Object) {
                    for (subName in value) {
                        subValue = value[subName];
                        fullSubName = subName;
                        innerObj = {};
                        innerObj[fullSubName] = subValue;
                        query += param(innerObj) + '&';
                    }
                } else if (value !== undefined && value !== null) {
                    query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
                }
            }
            return query.length ? query.substr(0, query.length - 1) : query;
        };
        return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
    }

    $httpProvider.defaults.headers.put = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
    $httpProvider.defaults.headers.post = {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
    
    $httpProvider.defaults.withCredentials = true;
}])

// 配置编辑器
.config(['simditorConfig',function(simditorConfig) {
    simditorConfig.toolbar=["title", "bold", "italic", "underline", "strikethrough", "color", "|", "ol", "ul",  "table", "|", "link", "image", "hr", "|",  "alignment", "|", "html"];
    simditorConfig.placeholder = '';
    simditorConfig.upload.url ="http://dev.api.mfxxadmin.bigoedu.com/"+'Upload/uploadEditor';
}]);